//数组排序各种方式

//sort排序
//对数字进行排序，简写
const arr = [3,2,4,1,5]
arr.sort((a,b)=> a - b)
// console.log(arr)

//对字母进行排序，简写
const arr1 = ['b','c','a','e','d']
arr1.sort()
// console.log(arr1)

//冒泡排序
function bubbleSort(arr){
    let length = arr.length
    for(let i = 0; i < length - 1; i++){
        // 从第一个元素开始，比较相邻的两个元素，前者大就交换位置
        for(let j = 0; j < length - 1 - i; j++){
            if(arr[j] > arr[j + 1]){
                let num = arr[j]
                arr[j] = arr[j + 1]
                arr[j + 1] = num
            }
        }
        //每次遍历结束，都能找到一个最大值,放在数组最后
    }
    return arr
}

// console.log(bubbleSort(arr))

//数组去重
const arr2 = ['2', '4', 3 , 2, '4', 'b', 3]
//Set去重
const newArr = [...new Set(arr2)]
// console.log(newArr)
//或
const newArr1 = Array.from(new Set(arr2))
// console.log(newArr1)

//indexOf去重
const newArr2 = arr2.filter((item,index)=> arr.indexOf(item) === index)
// console.log(newArr2)


//说一下怎么取出数组最多的一项
let ary = ['赵', '钱', '孙', '孙', '李', '周', '李', '周', '周', '李', '周', '李', '周', '李','赵','赵','赵','赵','赵','赵'];
function getMaxTime(arr){
    let obj = {}
    arr.forEach(item => !obj[item] ? obj[item] = 1 : obj[item] ++)
    const maxTime = Object.values(obj).sort((a,b)=> b - a)[0]
    const result = Object.keys(obj).filter(item => obj[item] === maxTime)
    return { result, maxTime }
}
// console.log(getMaxTime(ary))
